M8C REGISTER SET The following is a list of the M8C registers used by ASM8C: A - Accumulator X - Index SP - Stack Pointer F - Flags M8C ADDRESSING MODES The M8C instructions may have none, one, or two operands selected from the registers listed above or an addressing mode from the following list: expr - immediate argument - In the lcall, ljmp, index, and pc relative branching instructions expr is an address expression. #expr - immediate argument [expr] - argument at location expr [x+expr] - argument at location x + expr reg[expr] - argument at location expr in register space reg[x+expr] - argument at location x + expr in register space [[expr]++] - The value in memory at address expr (the indirect address) points to a memory location in RAM. The value in memory at address expr is then incremented. This addressing mode is used only by the mvi instruction and allows the short form [expr] for this addressing mode. The following tables list all M8C mnemonics and addressing modes recognized by the ASM8C assembler. Double Operand Arithmetic Instructions adc a,expr adc a,[expr] adc [expr],a adc a,[x+expr] adc [x+expr],a adc [expr],expr adc [x+expr],expr add a,expr add a,[expr] add [expr],a add a,[x+expr] add [x+expr],a add [expr],expr add [x+expr],expr add sp,expr cmp a,expr cmp a,[expr] cmp a,[x+expr] cmp [expr],expr cmp [x+expr],expr sbb a,expr sbb a,[expr] sbb [expr],a sbb a,[x+expr] sbb [x+expr],a sbb [expr],expr sbb [x+expr],expr sub a,expr sub a,[expr] sub [expr],a sub a,[x+expr] sub [x+expr],a sub [expr],expr sub [x+expr],expr Double Operand Logic Instructions and a,expr and f,expr and a,[expr] and [expr],a and a,[x+expr] and [x+expr],a and [expr],expr and [x+expr],expr and reg[expr],expr and reg[x+expr],expr or a,expr or f,expr or a,[expr] or [expr],a or a,[x+expr] or [x+expr],a or [expr],expr or [x+expr],expr or reg[expr],expr or reg[x+expr],expr xor a,expr xor f,expr xor a,[expr] xor [expr],a xor a,[x+expr] xor [x+expr],a xor [expr],expr xor [x+expr],expr xor reg[expr],expr xor reg[x+expr],expr Miscellaneous Double Operand Instructions swap a,x swap a,sp swap a,[expr] swap a,[x+expr] tst [expr] tst [x+expr] tst reg[expr] tst reg[x+expr] Single Operand Shift/Rotate Instructions asl a asl [expr] asl [x+expr] asr a asr [expr] asr [x+expr] rlc a rlc [expr] rlc [x+expr] rrc a rrc [expr] rrc [x+expr] Miscellaneous Single Operand Instructions cpl a dec a dec x dec [expr] dec [x+expr] inc a inc x inc [expr] inc [x+expr] pop a pop x push a push x tst [expr] tst [x+expr] tst reg[expr] tst reg[x+expr] AZ.3.6 Move Instructions mov a,x mov a,expr mov a,[expr] mov [expr],a mov a[x+expr] mov [x+expr],a mov x,a mov x,sp mov x,expr mov x,[expr] mov [expr],x mov x,[x+expr] mov [expr],expr mov [x+expr],expr mov [expr],[expr] mov a,reg[expr] mov a,reg[x+expr] mov reg[expr],a mov reg[x+expr],a mov reg[expr],expr mov reg[x+expr],expr mvi a,[expr] == mvi a,[[expr]++] mvi [expr],a == mvi [[expr]++],a Inherent Instructions halt nop romx ssc ret reti Branching Instructions lcall expr ljmp expr jz expr jnz expr jc expr jnc expr jacc expr Relative Table Read Instruction index expr
... Exit the ASxxxx Documentation